1. The Field of the Invention
The present invention relates to electrical computers and data processing systems. Specifically, the present invention relates to a system and method for downloading selected rows within a listing using HyperText Transport Protocol (HTTP).
2. The Prior State of the Art
The Internet has revolutionized the way people communicate and learn. With just a computer, a Web browser, and an Internet connection, a user can access a host of services available on the Internet.
In a typical method of accessing the Internet, the user will first indicate a desire to access the Internet through a graphical user interface provided by the Web browser. For example, the user might use a pointing device such as a mouse to click a xe2x80x9cSIGN ONxe2x80x9d button displayed by the Web browser on the computer display. The user""s computer (i.e., the client computer) then links to the Internet automatically. The user might then download a resource such as a Web page, a directory listing, an e-mail listing, or a table by the user requesting that information. For example, the user might click on a hypertext link in a HTML document to request the resource corresponding to that hypertext link. In response, the client computer and server computers on the Internet automatically download the requested resource to the client computer. Since the actions undertaken by the client computer and server computers to satisfy this request are largely hidden from the user, accessing the Internet can be quite easy for a user once the user becomes familiar with their computer and Web browser.
What is less apparent is what actions are undertaken by the client computer and server computers on the Internet in order to respond appropriately to the user""s request for information. In response to the user""s request, the client computer generates an electronic request for the corresponding resource. This request is typically then transmitted to a server computer that has access to the requested resource. Once the server computer receives the electronic request, the server computer interprets the request, and responds by sending an electronic response including the desired resource to the client computer.
In order for this communication to work properly, there must be a standard for communicating between the client computer and the server computer that has access to the desired resource. One of the most pervasive standard used in sending and receiving messages over the Internet is called HyperText Transport Protocol or xe2x80x9cHTTPxe2x80x9d. Electronic requests can include one of several methods defined by HTTP, the methods defining the action to be taken upon a desired resource. For example, a xe2x80x9cGETxe2x80x9d method causes the server computer to download the resource in its entirety to the client computer.
While HTTP is normally used to retrieve documents over the Internet, an extension of HTTP called Distributed Authoring and Versioning (or xe2x80x9cWEBDAVxe2x80x9d) defines standards for retrieving a listing of elements whether it be a directory listing, an e-mail listing, a listing of rows in a table, or some other kind of listing. Often, these listings can be quite large. Rather than downloading these listings in their entirety, WEBDAV allows a client computer to request only those rows within a certain range. The server computer responds by downloading only the identified row range rather than the entire listing.
The row range is identified in the request using row numbers. For example, the HTTP request might specify that only the row range from row 1400 through row 1420 of the listing is desired. Therefore, even if the listing is relatively large, only a small portion of the listing is downloaded. Thus, the requested rows are downloaded and viewed relatively quickly. This allows the user to access desired rows without the inconvenience of having to wait for the entire listing to be downloaded.
Although this method has its advantages, it still has several disadvantages. For example, this method permits only one row range to be downloaded at a time. Suppose that the listing was a listing including the names of individuals in alphabetical order. Now suppose the user needs information regarding Aaron Aadan and Zelda Zynda. In the above describe row range method, the user would need to issue a request for Aaron Aadan perhaps designating early rows in the listing such as rows 1-20. The user would then need to issue a separate request for Zelda Zynda by perhaps designating latter rows in the listing such as rows 9981-10000 (assuming a listing 10000 rows long). If information regarding more individuals were desired, even more requests would need to be issued. Each request takes additional effort of the user, time for the server to process the request, and time for the server to download the request. If the server is busy processing other requests, this additional request might wait in a buffer until the server computer can process the request which can take even more time. In addition, if the network is experiencing a lot of traffic, the download time may also be high, thus increasing the time required to obtain the desired information even further.
Another disadvantage of this method is based on the fact that the row range is specified by row numbers. If the row numbers change frequently the row range may not correspond to the intended range. For example, suppose that the user requests rows 980-1000 of the listing and receives rows 980-1000. While the user is analyzing these rows, 5 new rows are inserted before row 980. Now, unbeknownst to the user, rows 980-1000 are reassigned by the server as rows 985-1005 to accommodate the insertion.
Now, suppose that the user desires to see the next 20 rows in the listing. The user would logically request rows 1001-1020 thinking that the user would receive the next 20 rows with no overlap. However, the user would actually receive five rows of overlapping rows corresponding to the current rows 1001-1005 which correspond to the rows 996-1000 previously downloaded. Thus, in the second download, the user did not receive the intended row ranges, and the user undesirably does not have complete control over which rows are downloaded. Therefore, what is desired is a system and method for more flexibly and accurately downloading row ranges using a single request.
The present invention may be implemented in a computer network such as the Internet that includes client computers that generate requests for services, and include server computers that fulfill such requests.
In one method of the present invention, one of the client computers accesses a listing having a number of rows. For example, this listing might be a directory listing, an e-mail listing, a contacts listing, a table listing, or any other type of listing accessible by one of the server computers in the computer network. The client computer does not access all of the listing since downloading the entire listing could be time consuming. Instead, the client computer accesses only the information within row of certain row ranges.
The client computer first generates a single HTTP request for the rows within the desired row ranges. Since this request is compliant with HTTP protocol as an extension of HTTP, a common Internet protocol, the present invention allows for the retrieval of row ranges over the Internet. This is especially advantageous in the context of the Internet since the Internet permits numerous client computers to communicate with numerous server computers. Thus, each client computers has access to numerous listings through numerous server computers. The present invention also allows client computers to access these listings without having to download the entire listing. Since many client computers have connections to the Internet that download data very slowly, allowing for the flexible downloading of only a portion of the listing saves significant time.
The client computer then transmits the HTTP request over the computer network to be received by the server computer that has access to the listing. In response to the HTTP request, the server system accesses the listing to retrieve the rows within the requested row ranges. Then, the server computer generates an HTTP response that includes the row ranges, and transmits the HTTP response over the computer network for receipt by the client computer.
The present invention allows for rows within several row ranges to be downloaded in response to a single request. Previously, a separate HTTP request was required for each row range. Since each separate HTTP request would needed to be routed through the computer network to the server computer where it may wait for processing a significant amount of time if the server computer is overloaded, each separate request could take some time to be fulfilled. Reducing to one the number of requests required thus increases the speed with which the several row ranges can be downloaded.
In another method in accordance with the present invention, the client computer generates an HTTP request for rows within a row range. The request includes an identification of a reference row in the listing other than by the reference row""s precise sequential position within the listing. For example, instead of identifying the reference row by a row number, the reference row is identified perhaps by its content, and/or by a unique identifier that is permanently assigned to the desired row. The row range is identified relative to the reference row. For example, the row range may be defined as the 20 rows beginning with the reference row. The client computer then transmits the HTTP request to the server computer. Once the server computer receives the HTTP request, the server computer accesses the listing, retrieves the identified row range, generates an HTTP response including the row range, and transmits the HTTP response to the client computer.
Since the row range is identified relative to the reference row, and since the reference row is identified independently of its precise sequential position in the listing, row numbers corresponding to a row range may be altered without changing the resulting downloaded row ranges. For example, suppose the client computer previously downloaded 20 rows ending with a row containing a LastName field of xe2x80x9cZedekiahxe2x80x9d, a first name field of xe2x80x9cNathanxe2x80x9d, and a unique identifier field of xe2x80x9c39FFxe2x80x9d in hexadecimal. Now suppose the user presses the xe2x80x9cpage downxe2x80x9d button on her keyboard. The client computer would respond by requesting from the server computer 20 rows beginning with the row containing xe2x80x9cNathan Zedekiahxe2x80x9d and having the unique identifier xe2x80x9c39FFxe2x80x9d. If the client computer were to identify the reference row by row number, there may be some skipped rows or overlapping rows if rows were deleted or inserted to the listing at the server computer just prior to the page down operation at the client computer.
Additional objects and advantages of the invention will be set forth in the description which follows, and in part will be obvious from the description, or may be learned by the practice of the invention. The objects and advantages of the invention may be realized and obtained by means of the instruments and combinations particularly pointed out in the appended claims. These and other objects and features of the present invention will become more fully apparent from the following description and appended claims, or may be learned by the practice of the invention as set forth hereinafter.